#ifndef __CHATSERVER_HPP__
#define __CHATSERVER_HPP__

#include <muduo/net/TcpServer.h>
#include <muduo/net/EventLoop.h>

using namespace muduo;
using namespace muduo::net;


class ChatServer
{
public:
    ChatServer(EventLoop* loop,
            const InetAddress& listenAddr,
            const string& nameArg);
    
    // 启动服务器
    void start();
private:

    // 连接建立与断开的回调
    void onConnection(const TcpConnectionPtr&);

    // 读写事件的回调
    void onMessage(const TcpConnectionPtr&,
                            Buffer*,
                            Timestamp);

    TcpServer _server;      // 服务器对象
    EventLoop *_loop;       // 事件循环
};


#endif